컨피그 파일등을 두고 파싱을 하든 지지고 볶든 -D 매크로를 쓰든 등등 해서 컴파일 타임때 넣는 방식이다. 배포 사고가 발생할 확률이 있다. 보안 측면에서 권장하지 않는다. 유연하지 않다.
얼마되진 않지만 file io가 발생한다. 파싱 부하도 있것다. 뭐 별건 아니다. 그렇다해도 아파치 모듈을 짜는 입장에서는 좀 별로다. 초당 수천 요청이 오는데 그 때마다 컨피그를 읽기 위해서 file 시스템 콜이 발생한다는 것은 좀 찜찜하다. 잘 짜면 실시간 반영이 가능하다.
깨끗하지만 아파치 설정 관련 코딩 노가다량이 좀 생긴다. 아파치를 재시동하지 않으면 실시간 반영은 어렵다.
공유 메모리에 컨피그를 넣는 임포터를 만든다. 속도도 가장 빠를 것이다. 뽄새는 나는데 영 번잡스럽다.
현실적인 대안이라면 아파치 설정에서 읽는 것이 괜찮은 것 같다. 또는 컨피그 파일과 조합하여 아파치 설정에서 파일명을 지정하는 것이다. 즉 아파치 설정에서 이렇게 할 수 있겠다.
REL_MODE=debug.cfg // 디버그 모드일때
REL_MODE=biz.cfg // 상용 모드 일 때
나는 그냥 귀찮아서 아파치 설정에서 읽는 것을 택하려고 한다.
대신 환경변수는 모아놓는다. 즉 env_local.cfg, env_dev.cfg, env.biz.cfg 를 생성하고 심볼릭 링크로 env.cfg를 생성하여 타겟팅한다. 컨피그 파일에는 디비 주소, 암호 등을 설정할 수 있다.
그리고 httpd.conf에 다음과 같이 처리한다.
Include env.cfg